#include <lampe/types.h>
#include <lampe/stream/IReader.h>
#include <lampe/IReferenceCounted.h>

namespace lampe{
namespace xml{

class IXMLSaxList:public virtual IReferenceCounted{
public:
	virtual bool read()=0;
	virtual int getNodeType()=0;
	virtual String getNodeName()=0;
	virtual bool isEmptyElement()=0;
	virtual lampe::u32 getAttributeCount()=0;
	virtual lampe::String getAttributeName(lampe::u32 index)=0;
	virtual lampe::String getAttributeValue(lampe::u32 index)=0;
	virtual lampe::String getNodeData()=0;
	virtual bool isCDATA()=0;
};

lampe::xml::IXMLSaxList*createSAXList(lampe::stream::IReader*parser);

}//namespace xml
}//namespace lampe